package org.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.common.dtos.PageResponseDto;
import org.example.model.common.dtos.user.LoginDto;
import org.example.model.common.dtos.user.UserBasicDto;
import org.example.model.common.vos.user.LoginVo;
import org.example.model.user.UserBasic;

import java.util.List;

/**
 * 用户管理
 */
public interface UserBasicService extends IService<UserBasic> {

    /**
     * 用户登录
     */
    LoginDto Login(LoginVo loginVo, Boolean flag);
    /**
     * 用户注册
     */
    LoginDto Register(LoginVo loginVo);
    /**
     * 新增用户
     */
    Boolean InsertUserBasic(UserBasic userBasic);

    /**
     * 根据Id查询数据详情
     * @param id
     * @return
     */
    UserBasicDto SelectUserById(int id);

    /**
     * 根据id修改用户信息
     */
    Boolean UpdateUserBasicById(UserBasic userBasic);

    /**
     * 按条件(用户名模糊查询，登录账号模糊查询，用户状态精确查询,用户类型精确查询)分页查询
     * @param userBasic
     * @param pageIndex
     * @param pageSize
     * @return
     */
    PageResponseDto<List<UserBasicDto>> SelectPageByConditions(UserBasic userBasic, int pageIndex, int pageSize);

    /**
     * 根据id删除用户
     */
    Boolean DeleteUserBasicById(int id);
}
